Demo Implementation of the Toolkit PlotID

Summary

The plotID toolkit supports researchers in tracking and storing relevant data in plots. Plots are labeled with an ID and the corresponding data is stored depending on the researcher’s need.

The Software is Open Source and the repositories are available at GitLab.

Measures: A-2-2, A-2-3, A-2-5, A-3-2

Description

Figure, plots and diagrams are key for presenting condensed knowledge in the scientific world. However, it is often difficult or impossible to understand which data are shown in an image or and how they were processed. PlotID helps you in two steps:

  1. the plot is labeled with an ID of your choice
  2. the research data, the plotting and further scripts and the plot itself is exported in a folder marked with this ID.
    By referencing the ID along with knowledge of the general storage location (network filesystem, or public repository), it is possible to reproduce the workflow in the future.
Schematic showing the three steps of creating a plot with data and code, tagging the plot with an ID collecting all components for archiving or sharing.

Methodology of plotID

The first implementation was done in Matlab, based on the author’s expertise and the prevailing programming languages used at the chair of Fluid Systems.
Following the most used environments while also moving to an open, non-proprietary platform we are currently working on an implementation in python, which could possibly lead to an executable package that can be accessed by other coding languages.

Status

Planned Activities

  • investigation about tools plotID could be integrated with (software workflows, JupyterLab Notebooks, data validation pipelines…)

  • investigation into integrating or accessing existing platforms to use persistent identifiers (PID)

  • increased usage of plotID in all relevant student projects that work with data / code and produce figures.

  • investigation of platform independent adaption of plotID (2023)

  • adapting the Matlab version to the open source pendant Octave

In-progress Activities

  • in-depth testing and bug fixing for the Matlab version
  • development of a python version (Q2/2022-2023)
  • starting October 2021, the Matlab version has been used in pilot projects by scientists and students
  • expanding the automated documentation with examples, guides, instructions for contribution, … (Q4/2022-2023)
  • investigation and implementation of further applications for the CI-CD technologies (Q3/2022-2023)

Completed Activities

  • initial implementation in Matlab, covering basic user needs (Q4/2021)
  • a stable release was published on Zenodo (Q1/2022)
  • creation of an automatically generated code documentation for python (Q3/2022)

Results

Matlab version V1:

  • a simple CI/CD test case is implemented in CI/CD using
  • a custom Matlab testing environment
  • Matlab package, which helps with referencing and exporting plots, data and code

Python Version (alpha) V0.2.1 in alpha state:

  • an object oriented python package that allows tagging and simple copying
  • a PIP package for installation PyPI/PlotID
  • a Readme documenting installation and simple use cases
  • GitLab pipeline with multiple CI/CD jobs including unittests and test coverage reporting, linting, API documentation, and security tests

Lessons Learned/ Recommendations

  • usability is crucial for user acceptance
  • comprehensive, easy-to-understand, and reviewed documentation is key for a good user experience
  • ease of use requires a lot of user feedback
  • object oriented programming should be used if a lot of communication between functions is neccesary
  • modularity (as in supporting multiple plot engines) is a key role of OOP

Publication(s)

  • In September 2022 the plotID workflow and packages were presented at the NFDI4Ing community meetings of cluster 41 (mechanical engineering and production technology), 42 (thermal und process engineering) and 45 (architecture and civil engineering). A recording of this presentation can be found under: DOI: 10.5446/59362

  • In September 2021 the plotID concept was introduced during the NFDI4ING conference. The slides are available (in German) via Zenodo. DOI

For a detailed documentation, see the GitLab group of PlotID.

Acknowledgements

We acknowledge contributions from the NFDI4ing Team @TU Darmstadt and the pilot users.